#include <iostream>
#include "mapeditor.h"
#include "warrior.h"
#include "thief.h"
#include "characterinvoker.h"

using namespace std;

void modifyCharacter(Character* c);

int main()
{
    MapEditor* map;
    Character* warrior;
    Character* thief;
    CharacterInvoker* ci;

    cout << "Initializing Map...";
    map = new MapEditor();
    cout << "done!\n";

    cout << "Initializing Warrior...";
    warrior = new Warrior(map);
    cout << "done!\n";

    cout << "Initializing Thief...";
    thief = new Thief(map);
    cout << "done!\n";

    ci = new CharacterInvoker(warrior);
    ci->showStats();
    ci->increaseStrength(1);
    ci->increaseStrength(1);
    ci->increaseStrength(1);
    ci->increaseStrength(1);
    ci->showStats();
    ci->undo();
    ci->undo();
    ci->showStats();

    delete map;
    delete warrior;
    delete thief;

    return 0;
}
